home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ETO Development Tools 4
/
ETO Development Tools 4.iso
/
Tools - Objects
/
MacApp
/
MacApp 2.0.1
/
Experimental enhancements
/
Windoid
/
•Read Me•
Wrap
Text File
|
1990-10-31
|
6KB
|
129 lines
Floaters for MacApp® 2.0
version 1.0b1
© Apple Computer, Inc. 1990
Chris Knepper
Apple Computer, Inc.
408-974-7344
AppleLink: KNEPPER
To use this package, you must have MacApp 2.0 final, and either MPW 3.1 or THINK Pascal 3.0.1.
Release Notes
=============
This package is provided to allow MacApp® 2.0 applications to support tear-off menus
and floating windows.
Floating windows are a subclass of TFloatWindow. They install themselves in the front
of the window list. Floating windows are identified by the windowKind field of the
windowRecord.
Tear-off menus are a subclass of TTearOffMenu. For your menus to get tear-off behavior
you need to subclass of TTearOffMenu. You can tear-off any TWindow object, including
a TFloatWindow object.
Note that this package includes UMenu. The version of UMenu provided with this package
is enhanced from the version of UMenu in the MacApp® 2.0 release.
Many of MacApp 2.0 methods have been modified to support floating windows. E.g. The
TWindow class has been modified so that new windows install themselves behind the last
floating window. For this reason, it is necessary to replace certain files from the MacApp 2.0
release with the files included in this package.
Included with this package is an enhanced DrawShapes providing tear-off menu and floating
window capabilities. This enhanced DrawShapes should teach you how to use this package.
To learn how to use the UFloatWindow and UTearOffMenu units, look at:
MDrawShapes.p - to see how to initialize these units;
DrawShapes.MAMake - to see how to make your application with these units;
UDrawShapes.p - to see how the classes TToolsMenu & TPatternsMenu implement tear-off menus
- to see how the classes TToolsPalette & TPatternsPalette implement views
that are trackable and installable in floating windows and in tear-off menus
- to see how the trackers TToolSelectCmd & TReshadeCmd are used to track in both
tear-off menus and in floating windows
Known Bugs and Limitations
==========================
Tear-offs: no known bugs
Floating windows:
1. Currently, only template floating window creation is supported (no procedural support yet).
2. The floating window WDEF drop-shadow needs a 2 pixel inset at top-right and bottom-left.
DrawShapes demo:
1. There is a bug with the hiliting of the tools palette so that the current selection is
sometimes not correctly reflected by the hiliting, and sometimes multiple tools are selected.
2. There is a bug in the TReshadeCmd when a pattern isn't selected from the floating palette
(e.g. if the tracker is tracked off the edge and released, or if the mouse is released on
a border between two patterns).
THINK Pascal users:
1. To use this package with THINK Pascal, you will have to build "to disk" and launch from
the Finder. When running within the THINK Pascal environment, there is a crash when
quitting the application.
Technical Support
=================
AppleLink: MacDTS, MacApp.Tech$
Installation instructions
=========================
Copy this package to your hard disk.
For MPW users:
1. Replace UMacApp.p in MacApp's PInterfaces folder with the version in this package
• adds constant kFloatWindowKind
• adds method PROCEDURE TApplication.ShowHideHiddenWindows
• adds field fHideOnSuspend to TWindow
• adds method FUNCTION TWindow.GetBehindWindowPtr: WindowPtr;
• adds method FUNCTION TWindow.IsHidOnSuspend: BOOLEAN;
• adds interfaces for IsDialog, IsFloatWindow, GetLastFloatingWindowPtr,
MAGetActiveWindow, IsDocumentWindow, and MAFrontWindow.
2. Replace UMacApp.TWindow.p in MacApp's Libraries folder with the version in this package
• modifies TWindow.IRes to call GetBehindWindowPtr
• adds method FUNCTION TWindow.GetBehindWindowPtr: WindowPtr;
• adds method FUNCTION TWindow.IsHidOnSuspend: BOOLEAN;
• adds routines for IsDialog, IsFloatWindow, GetLastFloatingWindowPtr,
MAGetActiveWindow, and IsDocumentWindow
3. Replace UMacApp.TApplication.p in MacApp's Libraries folder with the version in this package
• modifies TApplication.Close so that non-floater windows close before floater windows
• adds method PROCEDURE TApplication.ShowHideHiddenWindows
• modifies method TApplication.HandleSystemEvent to call ShowHideHiddenWindows
• modifies TApplication.MakeClipboardWindow to set fHideOnSuspend to TRUE
4. Replace UPatch.inc1.p in MacApp's Libraries folder with the version in this package
• fixes a bug in UnpatchTrap when unpatching a trap which has been patched multiple times
5. Launch MPW and set the directory to the DrawShapes folder provided with this package
6. Rebuild the MacApp library for all versions of the library that you use, e.g.:
MABuild -autobuild -nodebug DrawShapes
MABuild -autobuild -debug DrawShapes
For THINK Pascal users:
1. Replace UMacApp.p in ":THINK MacApp:MacApp Source:" with the version in this package
• adds constant kFloatWindowKind
• adds field fHideOnSuspend to TWindow
• adds method FUNCTION TWindow.GetBehindWindowPtr: WindowPtr;
• adds method FUNCTION TWindow.IsHidOnSuspend: BOOLEAN;
• adds method PROCEDURE TApplication.ShowHideHiddenWindows
• adds interfaces and routines for IsDialog, IsFloatWindow, GetLastFloatingWindowPtr,
MAGetActiveWindow, IsDocumentWindow, and MAFrontWindow.
2. Replace UMA.TWindow.p in ":THINK MacApp:MacApp Source:" with the version in this package
• modifies TWindow.IRes to call GetBehindWindowPtr
• adds method FUNCTION TWindow.GetBehindWindowPtr: WindowPtr;
• adds method FUNCTION TWindow.IsHidOnSuspend: BOOLEAN;
3. Replace UMA.TApplication.p in ":THINK MacApp:MacApp Source:" with the version in this package
• modifies TApplication.Close so that non-floater windows close before floater windows
• adds method PROCEDURE TApplication.ShowHideHiddenWindows
• modifies method TApplication.HandleSystemEvent to call ShowHideHiddenWindows
• modifies TApplication.MakeClipboardWindow to set fHideOnSuspend to TRUE
• fixes an incompatibility between the way that THINK and MPW reserve space on the stack
for the result of a function call for the methods TApplication.InModalMenuState and
TApplication.InModalState
4. Replace UPatch.p in ":THINK MacApp:MacApp Source:" with the version in this package
• fixes a bug in UnpatchTrap when unpatching a trap which has been patched multiple times
5. Launch THINK Pascal, open either DrawShapes.Build.π or DrawShapes.Debug.Build.π.
6. Build the project.